home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------------
- //
- // Sample Name: AddressOverride Sample
- //
- // Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
- //
- //-----------------------------------------------------------------------------
-
-
- Description
- ===========
- AddressOverride shows how to programmatically tell DirectPlay the addressing
- in order to host or connect to another session on the network, instead of just
- letting DirectPlay popup a dialog box to ask the user the connection settings.
- Most games will typically follow this method so they can customize the UI.
-
- Path
- ====
- Source: DXSDK\Samples\Multimedia\DirectPlay\AddressOverride
-
- Executable: DXSDK\Samples\Multimedia\DirectPlay\Bin
-
- User's Guide
- ============
- Enter the player's name, session, and check or uncheck the 'host sesion'
- checkbox.
-
- Choose a service provider, and adapter. If the TCP/IP SP is chosen, and
- hosting then enter port or it leave blank to have DirectPlay automatically
- pick a port. If joining, then enter the port and the IP address of the host,
- or leave blank to search the subnet. If the modem SP is chosen, then enter
- the phone number. If the IPX SP is chosen, then enter the port. If the
- serial SP is chosen, then the simple dialog will use the default DirectPlay
- dialog to query the user for the serial settings.
-
- Click OK to start or join a game. Once in a session, it presents a
- simple game similiar to SimplePeer.
-
- Programming Notes
- =================
- The AddressOverride sample is very similar in form to the SimplePeer sample. For
- detailed programming notes on the basics this sample, refer to Programming
- Notes section of the SimplePeer sample.
-
- The AddressOverride differs by letting programmatically telling DirectPlay
- the address instead of just letting DirectPlay popup a dialog box.
-
- * The "OK" button is pressed. See LaunchMultiplayerGame().
- 1. It gathers if the user wants to host or join.
- 2. It gathers the SP guid from the UI
- 3. If hosting it creates a IDirectPlay8Address* called pHostAddress and
- calls IDirectPlay8Address::SetSP() on it.
- 4. If joining or hosting it creates a IDirectPlay8Address* called
- pDeviceAddress and calls IDirectPlay8Address::SetSP() on it.
- 5. If gathers from the UI if an adapter was selected. If it was it calls
- IDirectPlay8Address::SetDevice() on the pDeviceAddress.
- 6. It then fills in the pDeviceAddress and the pHostAddress depending
- on the SP selected, and if joining or hosting by calling
- IDirectPlay8Address::AddComponent. Here's how that works:
-
- - If the TCP/IP SP was selected and hosting, then:
- - If a port was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
- on the pDeviceAddress to add the port.
- - If the TCP/IP SP was selected and joining, then:
- - If a IP address was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_HOSTNAME, ... )
- on the pHostAddress to add the IP address.
- - If a port was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
- on the pHostAddress to add the port.
-
- - If the IPX SP was selected and hosting, then:
- - If a port was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
- on the pDeviceAddress to add the port.
- - If the IPX SP was selected and joining, then:
- - If a port was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_PORT, ... )
- on the pHostAddress to add the port.
-
- - If the modem SP was selected and joining, then:
- - If a phone number was entered it calls
- IDirectPlay8Address::AddComponent( DPNA_KEY_PHONENUMBER, ... )
- on the pHostAddress to add the phone number.
-
- 7. It then connects in a similar manner as SimplePeer, but using
- the pDeviceAddress and pHostAddress it filled to connect or join
- to the session.
-
-
-
-